/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Raytracing.BRDF;

import Raytracing.Ray;
import processing.core.PVector;

/**
 *
 * @author Matt
 */
abstract public interface BRDF {
    
 
    
    
    
    public abstract PVector getReflectance(PVector incoming, PVector outgoing, PVector normal, float tu, float tv, PVector u, PVector v);
    
    public abstract float sampleReflectance(PVector outgoing, Ray sample,
            PVector normal, PVector BRDF,
            float tu, float tv, PVector u, PVector v,
            float u1, float u2);
    
    
    
}
